<转>家庭网络IPTV融合改进|直播回看随时看

1 次浏览
0 评论

 本文共计4031字,预计需要花费 6分钟才能阅读完成。

前面的文章,写了在家庭组网里面,怎么用软路由(OpenWrt)实现将运营商的IPTV的组播转到局域网内的单播,实现不用运营商的盒子,在任何终端(电视、平板、手机)上通过上网的wif就能管看IPTV,具体过程见OpenWrt应用场景:IPTV融合介绍

但是这个有个实现过程存在几个问题

  1. 运营商限制了组播的客户端数量。即同时少数播放客户端没问题,但是超过限制了,就不行了。
  2. 相比第一个,第二个问题其实弊端更明显,组播转单播不支持回看。一场经典的比赛,重要的新闻报道等,如果没来得及看实时的直播,那过后看回看其实就很有必要了。

这个问题,主要是回看有朋友留言问回看需要怎么配置。接下来就看下具体怎么实现IPTV回看吧。

基本原理介绍

IPTV融合的前提

开始之前,回顾一下之前单线复用或者双线复用的简单示意图如上图所示

  1. 光猫一根线或者两个根线到路由器。如果是双线,那就基于双线(iptv和wan口各用一根),创建两个逻辑的接口,一个wan口一个tv口。如果是单线,那就用vlan隔离,然后同样的创建出两个接口
  2. 在tv口上,配置上iptv的鉴权信息(账号或者dhcp)
  3. 在路由器上安装udpxy或者msd lite
  4. 客户端通过抓包或者网上搜索,找到本地的组播地址源。
  5. 在客户端上安装DIYP或者Kodi,通过http://路由器地址:UDPXY端口/rtp/组播地址格式构建m3u或者txt格式的节目列表
  6. 在上图中,黄色线部分,在tv口以下都是单播的,出了tv口上线,才是组播的。

有了以上了解,再来看回看的配置。

IPTV回看准备

首先,回看是单播地址,那问题就很简单了,只要网络能通就行,先找下回看的地址是什么?

在之前的找鉴权抓包的过程中,也顺带抓了节目列表。比如成都电信,这个请求/EPG/jsp/ [getchannellistHWCTC.js](http://getchannellistHWCTC.js) 下,就有所有的组播和回放的单播地址,比如这样:

其中ChannelURL就是直播的组播地址,TimeShiftURL就是回看的单播地址。这里看到非常长,其实后面是一些回放的参数,比如时间什么的,到.smil即可。

其实这个地址自己抓包麻烦的,网上找下吧。比如成都电信,可以参考老张的列表四川成都电信IPTV组播地址

另外就是需要找到EPG节目单。这个可以简单理解有了回看的网络url,那我只是支持回看,至于回看到以前什么时间段的,看什么节目,靠EPG节目单来控制的。 这个部分很多公共的可以用,当时也可以自己建,git上很多自己建的方案。

回看网络打通方案

有了地址,就看如何打通网络。其实我们家里面机顶盒能观看回放的节目,说明iptv这条线除了正常的组播流量,回放的流量也是通的。我们只需要保证我手机、电视等客户端到这个回看的地址是通的就行。

之前再说v6的时候,我们说过,我们上网的流量路径都是这样的:

客户端—>路由器lan口—>路由器wan口—>上一级路由器lan口—>上一级路由器wan口....-—>服务端

比如我要访问微信,我从客户端出来,到到家里面的路由器的lan口,然后从wan口出去,到运营商的路由器,再到骨干网络,最终到微信服务端。我们在客户端上,是指定了默认路由,在家用路由器上也指定了默认路由,流量才能一步一步的出去。

比如我这里,路由器上地址情况:

root@openwrt:~# ip -4 a   
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN group default qlen 1000
        inet 127.0.0.1/8 scope host lo
              valid_lft forever preferred_lft forever
2: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc fq_codel state UP group default qlen 1000
        inet 192.168.1.101/24 brd 192.168.1.255 scope global eth0
              valid_lft forever preferred_lft forever
4: eth2: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc fq_codel state UP group default qlen 1000
        inet 10.149.252.160/19 brd 10.149.255.255 scope global eth2
              valid_lft forever preferred_lft forever
5: br-lan: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc noqueue state UP group default qlen 1000
        inet 192.168.5.1/24 brd 192.168.5.255 scope global br-lan
              valid_lft forever preferred_lft forever

这里eth0是WAN口,br-lan是路由器的LAN口。

客户端的路由情况

default via 192.168.5.1 dev ens18 proto dhcp src 192.168.5.198 metric 100

路由器上路由情况

default via 192.168.1.1 dev eth0 proto static

路由器lan口收到客户端的数据包,通过防火墙设置,然后wan口转发出去,这就是路由器能够上网的原理。

类比这里,那就简单了,我回看的地址,不在互联网的骨干网上,或者在骨干网上,但是某一级路由没有给我们放通,那我们就手动指定路由。 这里的方法就是在OpenWrt上手动指定路由。路由的下一跳是TV口的网关(因为机顶盒能通回看地址,所以TV口也是能通的)

然后把TV口的防火墙区域 指定到WAN口。这样就可以通过lan到wan口的转发了。

其实防火墙区域指到LAN口也行,正常在lan区域转发

配置步骤

有了以上的基础,配置就简单了

OpenWrt配置

1.路由配置:网络--> 路由

路由这里,根据会看地址的范围来添加,有几个地址就添加几个,也可以像这里一样添加大段地址。 

2.防火墙配置 网络—> 接口—>TV口,编辑—> 防火墙设置

将TV口的防火墙区域指向WAN口

本地播放器配置

路由器配置完成之后,就可以在播放器上配置了。这里需要选择支持回看的播放器,这里选择DIYP。 配置主要有两个地方,一个是节目列表,一个是EGP电子节目单。 DIYP需要是txt格式的节目列表,格式如下:

所有频道,#genre#,
CCTV-1高清,rtsp://182.139.235.40/PLTV/88888895/224/3221228504/
            [658582939.smil](http://658582939.smil)
          
CCTV-2高清,rtsp://182.139.235.40/PLTV/88888896/224/3221227983/
            [10000100000000060000000003751359_0.smil](http://10000100000000060000000003751359_0.smil)
          
CCTV-3高清,rtsp://182.139.235.40/PLTV/88888895/224/3221228508/
            [666944883.smil](http://666944883.smil)
          
...

这里成都电信直接把老张的地址列表复制下来即可。将地址准备好之后,托管到路由器上即可。

 DIYP设置—>接口设置—>节目地址:

同样的方式设置EGP的电子界面的:

 DIYP设置—>接口设置—>EPG接口

epg接口这里直接用老张的,也可以选择其他的。当然也可以选择自建,看自己的情况吧。

效果展示

配置完成就可以顺利的观看会看信息了。这里我在21点40回看了7点的新闻联播。

总结

采用回看的地址,来改进组播转单播,实现IPTV的融合,在支持看直播的同时,也可以同时观看回看,该方案还跳过了运营商组播客户端数量的限制,真正实现了丢掉运营商的机顶盒,在任何设备上观看IPTV了。

这个也是其中一个朋友留言的问题,查了下资料,也折腾了几天,在帮朋友解决问题的同时,也改进自己的融合方案。 

关于播放器的问题,困扰了很久,最开始在电脑上尝试,我用VLC的播放器,用rtsp格式死活播放不了,一直以为是网络的原因。后面问了论坛大佬,才知道是VLC不支持,在手机上换成DIYP就可以了。 

另外,关于网络的打通。加路由是最简单的, 其实还可以做MWAN,将iptv单独做一个上行的wan口。过程中也尝试过了,其实都可以。不过iptv的鉴权信息这些,还是需要根据本地的情况,自己构建了。 

以上就是改进的IPTV融合方案了,过程中参考借阅了很多大佬的经验,但是过程中的图以及配置细节都是自己在实际环境中仔细研究的,希望看到这篇文章的朋友,不仅能配置,也知道其中为啥要这么配。

本文转自: MUM笔记

正文完
 0
评论(暂无评论)
评论已关闭